#ifndef __TWOFISHECB_VT__
#define __TWOFISHECB_VT__

#include "../plainkeycipher.h"

// Test vectors from <https://www.schneier.com/code/twofish-kat.zip>

static const std::vector <PlainKeyCipher> TWOFISH128_VT_TEST_VECTORS = {
    std::make_tuple("80000000000000000000000000000000", "00000000000000000000000000000000", "73B9FF14CF2589901FF52A0D6F4B7EDE"),
    std::make_tuple("40000000000000000000000000000000", "00000000000000000000000000000000", "F5A9150BAB6D6AEBD6B4F97D9E93B28B"),
    std::make_tuple("20000000000000000000000000000000", "00000000000000000000000000000000", "C30F8B221FD6D3996F973CDCDC6E305C"),
    std::make_tuple("10000000000000000000000000000000", "00000000000000000000000000000000", "D6A531FE826CB0454F2D567A20018CB7"),
    std::make_tuple("08000000000000000000000000000000", "00000000000000000000000000000000", "B62324BE427332A6089C7BE40D40292E"),
    std::make_tuple("04000000000000000000000000000000", "00000000000000000000000000000000", "929B4789E9D6940C9A158880CA21C0E2"),
    std::make_tuple("02000000000000000000000000000000", "00000000000000000000000000000000", "C14830DB50BA7221B27DC033B0D8D331"),
    std::make_tuple("01000000000000000000000000000000", "00000000000000000000000000000000", "743342B02EBE647AE47092D435FA60F6"),
    std::make_tuple("00800000000000000000000000000000", "00000000000000000000000000000000", "4F02AF45C09373D879CD01506A4E7D14"),
    std::make_tuple("00400000000000000000000000000000", "00000000000000000000000000000000", "92BC9085AB0BA8FFEC2EA6D360864817"),
    std::make_tuple("00200000000000000000000000000000", "00000000000000000000000000000000", "670A4ED16EA1BDE23E16CB52DBD31CB0"),
    std::make_tuple("00100000000000000000000000000000", "00000000000000000000000000000000", "A52335AA9F42886084E21400DE48B62F"),
    std::make_tuple("00080000000000000000000000000000", "00000000000000000000000000000000", "A5A240EBFED79F38F31497EA4C9CFCDA"),
    std::make_tuple("00040000000000000000000000000000", "00000000000000000000000000000000", "46A64A07123E1212FE9E2F30EDFD80FF"),
    std::make_tuple("00020000000000000000000000000000", "00000000000000000000000000000000", "20C9F20A8045AEDEE9D6E1CDA948339A"),
    std::make_tuple("00010000000000000000000000000000", "00000000000000000000000000000000", "DF1606EEF4FEE3F4FC9EC26E2AB388AB"),
    std::make_tuple("00008000000000000000000000000000", "00000000000000000000000000000000", "6758972B3171F0EA46304542776337FC"),
    std::make_tuple("00004000000000000000000000000000", "00000000000000000000000000000000", "EC9B591DB8476C26C3CFDA618C1DBBD8"),
    std::make_tuple("00002000000000000000000000000000", "00000000000000000000000000000000", "651551E741359E0A10BB4EE6A1C07C02"),
    std::make_tuple("00001000000000000000000000000000", "00000000000000000000000000000000", "88BC2BF1F8A55562B95F8547C9A19E56"),
    std::make_tuple("00000800000000000000000000000000", "00000000000000000000000000000000", "1A6CCCBD8D40AA14810ED615A6A6E24D"),
    std::make_tuple("00000400000000000000000000000000", "00000000000000000000000000000000", "7B68DA568ABA5AE69D93C915E37DEE91"),
    std::make_tuple("00000200000000000000000000000000", "00000000000000000000000000000000", "EC3922A728DA9E4C212D910E5C4AE632"),
    std::make_tuple("00000100000000000000000000000000", "00000000000000000000000000000000", "5BAC94C97A4069400875A5ABC07BCB17"),
    std::make_tuple("00000080000000000000000000000000", "00000000000000000000000000000000", "F3B4662918864BA94C1CF79C73B1F259"),
    std::make_tuple("00000040000000000000000000000000", "00000000000000000000000000000000", "6FBF5A9A93EFA6640AFB80D9A2D22CF7"),
    std::make_tuple("00000020000000000000000000000000", "00000000000000000000000000000000", "74139BD645DED7690F606490CCA44DD2"),
    std::make_tuple("00000010000000000000000000000000", "00000000000000000000000000000000", "B20F456519D353AF91C012793576F9B8"),
    std::make_tuple("00000008000000000000000000000000", "00000000000000000000000000000000", "C0AD52D4B4F67A9333A5E4B1B1176EEC"),
    std::make_tuple("00000004000000000000000000000000", "00000000000000000000000000000000", "797224710FD09F9830B0F160AE9051E8"),
    std::make_tuple("00000002000000000000000000000000", "00000000000000000000000000000000", "73669B64C292F4461FAA3A3D091D08DA"),
    std::make_tuple("00000001000000000000000000000000", "00000000000000000000000000000000", "EFE0E893CE04008935CB7D43A7DC9ADD"),
    std::make_tuple("00000000800000000000000000000000", "00000000000000000000000000000000", "3B0A2D3B236324221F81BFCAE45217D8"),
    std::make_tuple("00000000400000000000000000000000", "00000000000000000000000000000000", "CE6F569FC89127B1AE19466FA36DD6E4"),
    std::make_tuple("00000000200000000000000000000000", "00000000000000000000000000000000", "6037FE38896C05745C58C28CDF7FF386"),
    std::make_tuple("00000000100000000000000000000000", "00000000000000000000000000000000", "92F5817D0BE37241F9292F6FF918A8E5"),
    std::make_tuple("00000000080000000000000000000000", "00000000000000000000000000000000", "20C9A2A684563495C255A5751C1AC01E"),
    std::make_tuple("00000000040000000000000000000000", "00000000000000000000000000000000", "AC6B6DB6D069B6895F2283435D33BD43"),
    std::make_tuple("00000000020000000000000000000000", "00000000000000000000000000000000", "F9354B12C2366F1CE10F9A0550281267"),
    std::make_tuple("00000000010000000000000000000000", "00000000000000000000000000000000", "684FDA9FCF3B3B5648A452CDA07CF002"),
    std::make_tuple("00000000008000000000000000000000", "00000000000000000000000000000000", "9BE294C97C2A963006A2BD4541DC7DB5"),
    std::make_tuple("00000000004000000000000000000000", "00000000000000000000000000000000", "A984F6F70E93FE65C8798C01D4E5D30C"),
    std::make_tuple("00000000002000000000000000000000", "00000000000000000000000000000000", "E06A6CE2D74DB3D78E8F5D991C322B87"),
    std::make_tuple("00000000001000000000000000000000", "00000000000000000000000000000000", "646771D16BAEDAC3F8E9D00C212518A2"),
    std::make_tuple("00000000000800000000000000000000", "00000000000000000000000000000000", "9D2D410DC6F3BEC913D64BDBDEF3285E"),
    std::make_tuple("00000000000400000000000000000000", "00000000000000000000000000000000", "6850AFECD8064E77F4F6944BDF5B324D"),
    std::make_tuple("00000000000200000000000000000000", "00000000000000000000000000000000", "2E341142550F73F4C8E9DCCC5931A158"),
    std::make_tuple("00000000000100000000000000000000", "00000000000000000000000000000000", "0CA58E149C2120A8EBF9A7885A89ACBC"),
    std::make_tuple("00000000000080000000000000000000", "00000000000000000000000000000000", "41EACB7F6B5F9E3E3D299CA416EA2C59"),
    std::make_tuple("00000000000040000000000000000000", "00000000000000000000000000000000", "C4D45503484DBC83CB52D3DB4AD0A7CC"),
    std::make_tuple("00000000000020000000000000000000", "00000000000000000000000000000000", "CC52B159C2BCF87EE5F4926C6E7B7744"),
    std::make_tuple("00000000000010000000000000000000", "00000000000000000000000000000000", "7E8A4023B8890A2DBF0D54E330FDF2A2"),
    std::make_tuple("00000000000008000000000000000000", "00000000000000000000000000000000", "B05E771660493DCE3A275B0252D343A7"),
    std::make_tuple("00000000000004000000000000000000", "00000000000000000000000000000000", "83D0034D231E179207F6A97FB1457FEB"),
    std::make_tuple("00000000000002000000000000000000", "00000000000000000000000000000000", "7132BF130E8732C41F68107F49153FF2"),
    std::make_tuple("00000000000001000000000000000000", "00000000000000000000000000000000", "B93021593B9EA2588F16E87D3C5DE0EC"),
    std::make_tuple("00000000000000800000000000000000", "00000000000000000000000000000000", "26031449FBD6C84201B0BFB53B2C23CA"),
    std::make_tuple("00000000000000400000000000000000", "00000000000000000000000000000000", "AFC8E9D2B9BFED9CE0B898F28607DF4C"),
    std::make_tuple("00000000000000200000000000000000", "00000000000000000000000000000000", "C5094DE7E36CAEBE1B76EC3AC2C875F5"),
    std::make_tuple("00000000000000100000000000000000", "00000000000000000000000000000000", "7DF8910A2D256FFB5D56FD1358F131FE"),
    std::make_tuple("00000000000000080000000000000000", "00000000000000000000000000000000", "D93F84C1519D6627465E984675AA800B"),
    std::make_tuple("00000000000000040000000000000000", "00000000000000000000000000000000", "5F1861F1523CDA0C95644B0C4F2EE6D1"),
    std::make_tuple("00000000000000020000000000000000", "00000000000000000000000000000000", "FC5C4893AD148E4134EAEB3B1B190E29"),
    std::make_tuple("00000000000000010000000000000000", "00000000000000000000000000000000", "80D1463F9E9416A143B2FF69DE629510"),
    std::make_tuple("00000000000000008000000000000000", "00000000000000000000000000000000", "F16305404AE6266C619DC8ACA2D492E1"),
    std::make_tuple("00000000000000004000000000000000", "00000000000000000000000000000000", "3B2554E422F9CEBB8271D7A48C94E03F"),
    std::make_tuple("00000000000000002000000000000000", "00000000000000000000000000000000", "18B039EECB68A05CBF8C65EE85BDC4BC"),
    std::make_tuple("00000000000000001000000000000000", "00000000000000000000000000000000", "BB26ABB17AD5482B1DCC4018E7DB0950"),
    std::make_tuple("00000000000000000800000000000000", "00000000000000000000000000000000", "7E7AC0FD5B98157CEAD4BBAB643BE4CA"),
    std::make_tuple("00000000000000000400000000000000", "00000000000000000000000000000000", "BD8A3B64849E54CC2D8379DCA9E42FDD"),
    std::make_tuple("00000000000000000200000000000000", "00000000000000000000000000000000", "58C388DFB41FF3E14394C73FD8AAC56A"),
    std::make_tuple("00000000000000000100000000000000", "00000000000000000000000000000000", "944B295E23C5B2542DED57A155D33EF8"),
    std::make_tuple("00000000000000000080000000000000", "00000000000000000000000000000000", "067B4DD07DCA1292CFF0D80D75BDACA5"),
    std::make_tuple("00000000000000000040000000000000", "00000000000000000000000000000000", "7D7344373196C5B30676F270BFC90B07"),
    std::make_tuple("00000000000000000020000000000000", "00000000000000000000000000000000", "988C5164A82254B29326C98812A716CE"),
    std::make_tuple("00000000000000000010000000000000", "00000000000000000000000000000000", "8FFD48787C28542E0450FAD4CBAD34D0"),
    std::make_tuple("00000000000000000008000000000000", "00000000000000000000000000000000", "C50E7CD771628964E708425160FFB02C"),
    std::make_tuple("00000000000000000004000000000000", "00000000000000000000000000000000", "B293B07F92D68C18FEC1466996B78020"),
    std::make_tuple("00000000000000000002000000000000", "00000000000000000000000000000000", "DE21B2A6C8D7B90A7714DB3EF5209A6B"),
    std::make_tuple("00000000000000000001000000000000", "00000000000000000000000000000000", "4700E22C08FE953CABAC7E78A3F747A7"),
    std::make_tuple("00000000000000000000800000000000", "00000000000000000000000000000000", "504C1D7FAE3AB9A62323F21BF9A80A67"),
    std::make_tuple("00000000000000000000400000000000", "00000000000000000000000000000000", "064BA0E8ADDD8E9DF4496E6931AD25F4"),
    std::make_tuple("00000000000000000000200000000000", "00000000000000000000000000000000", "51D0B15C08FF32F1DCE7B28320875566"),
    std::make_tuple("00000000000000000000100000000000", "00000000000000000000000000000000", "1A20EA3DB071121460244EDE27DA7A39"),
    std::make_tuple("00000000000000000000080000000000", "00000000000000000000000000000000", "0035A5F7557B1B009327109D0C62F25C"),
    std::make_tuple("00000000000000000000040000000000", "00000000000000000000000000000000", "803939C10EE11BB254A7768FAD053DA4"),
    std::make_tuple("00000000000000000000020000000000", "00000000000000000000000000000000", "35D493255A870959C12F26170E6A1B64"),
    std::make_tuple("00000000000000000000010000000000", "00000000000000000000000000000000", "DE8381198215D45B1BE787E4E8438500"),
    std::make_tuple("00000000000000000000008000000000", "00000000000000000000000000000000", "B22E9707E738F723CD9B99386CE0162E"),
    std::make_tuple("00000000000000000000004000000000", "00000000000000000000000000000000", "24C65ADDE5C3CD24B75C343782E87F6E"),
    std::make_tuple("00000000000000000000002000000000", "00000000000000000000000000000000", "0050FF2C1A3C2AA68207D333F9956A72"),
    std::make_tuple("00000000000000000000001000000000", "00000000000000000000000000000000", "162F7B8D35C1A98305BA0FE2A91FF27A"),
    std::make_tuple("00000000000000000000000800000000", "00000000000000000000000000000000", "223D6117FE4864C2B3C513EAC2A5266A"),
    std::make_tuple("00000000000000000000000400000000", "00000000000000000000000000000000", "3DBF645715ED7AD1964E2DCDE2F8806A"),
    std::make_tuple("00000000000000000000000200000000", "00000000000000000000000000000000", "3DBB85509557BB00FE0F2013A90A5753"),
    std::make_tuple("00000000000000000000000100000000", "00000000000000000000000000000000", "F2D75E45A62D1758C7A542BC805AC482"),
    std::make_tuple("00000000000000000000000080000000", "00000000000000000000000000000000", "77628153A62DFD455B1C0E5B6CE9688C"),
    std::make_tuple("00000000000000000000000040000000", "00000000000000000000000000000000", "8AE9DF2D94F6E85C86459132130E1BF5"),
    std::make_tuple("00000000000000000000000020000000", "00000000000000000000000000000000", "BB610990F42303F4ECCD795E16780A13"),
    std::make_tuple("00000000000000000000000010000000", "00000000000000000000000000000000", "A38330C5C0B464FFD6983972CF9541CC"),
    std::make_tuple("00000000000000000000000008000000", "00000000000000000000000000000000", "EFD11CA98FEBB6F1ECBEBBCB8BD5E35B"),
    std::make_tuple("00000000000000000000000004000000", "00000000000000000000000000000000", "3BC6740BF141DD33D65FDEAA10BF1655"),
    std::make_tuple("00000000000000000000000002000000", "00000000000000000000000000000000", "FCF7BE4B89B54547C0BEF84EB85734F6"),
    std::make_tuple("00000000000000000000000001000000", "00000000000000000000000000000000", "CBF5EF38DDEBCA39F2F6BEB2F3042D96"),
    std::make_tuple("00000000000000000000000000800000", "00000000000000000000000000000000", "1119C20F08D4EA77A13C331678D4D71F"),
    std::make_tuple("00000000000000000000000000400000", "00000000000000000000000000000000", "5C8241DA3FB0DC7328271B9FF72C91BA"),
    std::make_tuple("00000000000000000000000000200000", "00000000000000000000000000000000", "337FCEE0AD0BDCA24AF5411B69D39B37"),
    std::make_tuple("00000000000000000000000000100000", "00000000000000000000000000000000", "F6C56A841A31D58A90F5693F87380A3F"),
    std::make_tuple("00000000000000000000000000080000", "00000000000000000000000000000000", "DD8C11B46F768B7CB2EAEE7E3448DD37"),
    std::make_tuple("00000000000000000000000000040000", "00000000000000000000000000000000", "B8EE7182E563888E4F99335CF0372598"),
    std::make_tuple("00000000000000000000000000020000", "00000000000000000000000000000000", "FCA9BAD58DD9C77B0BC0E616E7DE7F2D"),
    std::make_tuple("00000000000000000000000000010000", "00000000000000000000000000000000", "798DA99BEFFBF99B23A3C15A31F60CB1"),
    std::make_tuple("00000000000000000000000000008000", "00000000000000000000000000000000", "015CD86F000C87948BF3591C3DE4391F"),
    std::make_tuple("00000000000000000000000000004000", "00000000000000000000000000000000", "B40B9945EEF7BC52E0B244ED71FAD3D3"),
    std::make_tuple("00000000000000000000000000002000", "00000000000000000000000000000000", "D9BBB27B7D8AB20241E60F04108F1E12"),
    std::make_tuple("00000000000000000000000000001000", "00000000000000000000000000000000", "6EC3F259B3FA960505CDE9D20F9EB905"),
    std::make_tuple("00000000000000000000000000000800", "00000000000000000000000000000000", "01C1772AD104A988B2978447B91199F0"),
    std::make_tuple("00000000000000000000000000000400", "00000000000000000000000000000000", "F8D5E997A8DD1B5BBE79C9F36B94C73C"),
    std::make_tuple("00000000000000000000000000000200", "00000000000000000000000000000000", "4040058B08B27B6A585F18BFDBAE3E29"),
    std::make_tuple("00000000000000000000000000000100", "00000000000000000000000000000000", "55547D09ACAF0C915B24E15ABAB0C827"),
    std::make_tuple("00000000000000000000000000000080", "00000000000000000000000000000000", "FD7A0B33D397DA035D146DD56C869960"),
    std::make_tuple("00000000000000000000000000000040", "00000000000000000000000000000000", "80C38900313E9350219EAE9AA7DA5E1B"),
    std::make_tuple("00000000000000000000000000000020", "00000000000000000000000000000000", "F50D8495C3DCBFF4DFED0736F92475BB"),
    std::make_tuple("00000000000000000000000000000010", "00000000000000000000000000000000", "58A06DC5AD2D7C0550771D6E9D59D58B"),
    std::make_tuple("00000000000000000000000000000008", "00000000000000000000000000000000", "EEE324733E6409500FC9F9D6DCA185E0"),
    std::make_tuple("00000000000000000000000000000004", "00000000000000000000000000000000", "F97C415886D05C12598F2C95F6B3EB16"),
    std::make_tuple("00000000000000000000000000000002", "00000000000000000000000000000000", "F0FC7D86D814589A09D8EC136F95A124"),
    std::make_tuple("00000000000000000000000000000001", "00000000000000000000000000000000", "CA737FF1FD0FE5B8E41E90358A5F2CB1"),
};

static const std::vector <PlainKeyCipher> TWOFISH192_VT_TEST_VECTORS = {
    std::make_tuple("80000000000000000000000000000000", "000000000000000000000000000000000000000000000000", "62EF193EDB7D399ACA50EC1CBE5398D8"),
    std::make_tuple("40000000000000000000000000000000", "000000000000000000000000000000000000000000000000", "E7A58D547688BA8B69DA949E38AA6FAD"),
    std::make_tuple("20000000000000000000000000000000", "000000000000000000000000000000000000000000000000", "71579F70A8EDB2BA5C00C513E2D7DEEB"),
    std::make_tuple("10000000000000000000000000000000", "000000000000000000000000000000000000000000000000", "C6171EF892F8224DC5FAE230AF629F52"),
    std::make_tuple("08000000000000000000000000000000", "000000000000000000000000000000000000000000000000", "C6A61053C48D7ECD7DDD12DB0F316AD7"),
    std::make_tuple("04000000000000000000000000000000", "000000000000000000000000000000000000000000000000", "EA5833714F1324DAB7F53CACC63F784F"),
    std::make_tuple("02000000000000000000000000000000", "000000000000000000000000000000000000000000000000", "450BCB0C7351CB1CDAC5D02E80D13C64"),
    std::make_tuple("01000000000000000000000000000000", "000000000000000000000000000000000000000000000000", "C267D3634F84215FB7B4635AFA385E52"),
    std::make_tuple("00800000000000000000000000000000", "000000000000000000000000000000000000000000000000", "6DB5B1B156DA1C36B9AB5AB59B063C29"),
    std::make_tuple("00400000000000000000000000000000", "000000000000000000000000000000000000000000000000", "EDF2D9B19FF75561E8FA6F411C4A0431"),
    std::make_tuple("00200000000000000000000000000000", "000000000000000000000000000000000000000000000000", "A11AE84E6D2C56DED2B9497FEC7504A7"),
    std::make_tuple("00100000000000000000000000000000", "000000000000000000000000000000000000000000000000", "B3A1A1E271BF94DA3A5ECFF1D4293A56"),
    std::make_tuple("00080000000000000000000000000000", "000000000000000000000000000000000000000000000000", "5577374ADCF2F58EEEFFC432C42AEB76"),
    std::make_tuple("00040000000000000000000000000000", "000000000000000000000000000000000000000000000000", "CD9D355C3574343BC7FBE645CE7EA721"),
    std::make_tuple("00020000000000000000000000000000", "000000000000000000000000000000000000000000000000", "76EB4C046F052AE4ED41060BF60067FB"),
    std::make_tuple("00010000000000000000000000000000", "000000000000000000000000000000000000000000000000", "1273A4BC420BCC9E29619567B1E61762"),
    std::make_tuple("00008000000000000000000000000000", "000000000000000000000000000000000000000000000000", "1F80E1CE3F12C96F2E647BACB6DA78D8"),
    std::make_tuple("00004000000000000000000000000000", "000000000000000000000000000000000000000000000000", "12D34A7875E716B37A7E250D37AFFDEA"),
    std::make_tuple("00002000000000000000000000000000", "000000000000000000000000000000000000000000000000", "5A54D764EEFFC4B64143A58B071514B4"),
    std::make_tuple("00001000000000000000000000000000", "000000000000000000000000000000000000000000000000", "F4F1567BDC5B1F938D5A214419090FE0"),
    std::make_tuple("00000800000000000000000000000000", "000000000000000000000000000000000000000000000000", "6CB91B935A0FBF49636CDF64A12955B7"),
    std::make_tuple("00000400000000000000000000000000", "000000000000000000000000000000000000000000000000", "C082154A07AF64FF6ECA811B0E3302E6"),
    std::make_tuple("00000200000000000000000000000000", "000000000000000000000000000000000000000000000000", "49A746CC225C1B6009A93649CDD9EDCD"),
    std::make_tuple("00000100000000000000000000000000", "000000000000000000000000000000000000000000000000", "1CAD0512E3CC51210B411EE452DF62E4"),
    std::make_tuple("00000080000000000000000000000000", "000000000000000000000000000000000000000000000000", "4FE9A0CF34BBCFFF906D8450197CC9D1"),
    std::make_tuple("00000040000000000000000000000000", "000000000000000000000000000000000000000000000000", "38DB8EF6C8993F17BB4D1614B9DE15D4"),
    std::make_tuple("00000020000000000000000000000000", "000000000000000000000000000000000000000000000000", "08DB3F476F551D19D9643A9E139E0553"),
    std::make_tuple("00000010000000000000000000000000", "000000000000000000000000000000000000000000000000", "F0F518F73795AB51BFB6E0AA99A0DAC7"),
    std::make_tuple("00000008000000000000000000000000", "000000000000000000000000000000000000000000000000", "91544D597F679E7DFE6D16D475809851"),
    std::make_tuple("00000004000000000000000000000000", "000000000000000000000000000000000000000000000000", "B1F92601B6D8C6B81176A46EE7341D28"),
    std::make_tuple("00000002000000000000000000000000", "000000000000000000000000000000000000000000000000", "796C3A8CBC6450E51FA6F8765ACD0F10"),
    std::make_tuple("00000001000000000000000000000000", "000000000000000000000000000000000000000000000000", "5F7BFE71BD2E81599DDA3411BC1CA579"),
    std::make_tuple("00000000800000000000000000000000", "000000000000000000000000000000000000000000000000", "2DF7D576EC6296101CAB16012092C12C"),
    std::make_tuple("00000000400000000000000000000000", "000000000000000000000000000000000000000000000000", "20769DE071FBE22AE49E7B3F5D646418"),
    std::make_tuple("00000000200000000000000000000000", "000000000000000000000000000000000000000000000000", "B6F5C012E4BA15DC86536F328B137FC0"),
    std::make_tuple("00000000100000000000000000000000", "000000000000000000000000000000000000000000000000", "1C3031DD05EAA4C278B55EF0E7E4C1F9"),
    std::make_tuple("00000000080000000000000000000000", "000000000000000000000000000000000000000000000000", "3D72A53BD537D04AC59E0AF36D105ED9"),
    std::make_tuple("00000000040000000000000000000000", "000000000000000000000000000000000000000000000000", "A6FFE499A2050C38F4E89DBF12B27430"),
    std::make_tuple("00000000020000000000000000000000", "000000000000000000000000000000000000000000000000", "BFBB2A537B2C1339D6230F35A256F289"),
    std::make_tuple("00000000010000000000000000000000", "000000000000000000000000000000000000000000000000", "70E79718C97DDB187411436AC072B148"),
    std::make_tuple("00000000008000000000000000000000", "000000000000000000000000000000000000000000000000", "13BB56699085842B81DBE8FAA8B26269"),
    std::make_tuple("00000000004000000000000000000000", "000000000000000000000000000000000000000000000000", "3E4DB71B9C737C7F8AEF632A5ADEF61D"),
    std::make_tuple("00000000002000000000000000000000", "000000000000000000000000000000000000000000000000", "D7A254B7341C7677C72F9DE729A3BB78"),
    std::make_tuple("00000000001000000000000000000000", "000000000000000000000000000000000000000000000000", "527D14E58B74224622DF7F3FD65932F5"),
    std::make_tuple("00000000000800000000000000000000", "000000000000000000000000000000000000000000000000", "708703993AD1DDE5C7F8714686F3AF32"),
    std::make_tuple("00000000000400000000000000000000", "000000000000000000000000000000000000000000000000", "C57D3ECB71A7DA4708DE6F338BC13E09"),
    std::make_tuple("00000000000200000000000000000000", "000000000000000000000000000000000000000000000000", "B31FF60BE0FDC17001CAF87FC7FC0B2D"),
    std::make_tuple("00000000000100000000000000000000", "000000000000000000000000000000000000000000000000", "01877AC646A283472DA74182FDC1E2B5"),
    std::make_tuple("00000000000080000000000000000000", "000000000000000000000000000000000000000000000000", "3C678BADA3FB1B872C018DC035AE16E8"),
    std::make_tuple("00000000000040000000000000000000", "000000000000000000000000000000000000000000000000", "A2CB209DA6AA40E043E6FB9DD2476100"),
    std::make_tuple("00000000000020000000000000000000", "000000000000000000000000000000000000000000000000", "4F9402FF56D04C8FB37DBE1A3109D2DE"),
    std::make_tuple("00000000000010000000000000000000", "000000000000000000000000000000000000000000000000", "342DAAD90F0F1699048D5CD16FDA2EC7"),
    std::make_tuple("00000000000008000000000000000000", "000000000000000000000000000000000000000000000000", "E68CC86CA4D952BC3890AEC0A7AAA4B5"),
    std::make_tuple("00000000000004000000000000000000", "000000000000000000000000000000000000000000000000", "02A88364BF94A677124F670A566E3F0D"),
    std::make_tuple("00000000000002000000000000000000", "000000000000000000000000000000000000000000000000", "C961EF325E2A32A4359CC63BE1EE2C77"),
    std::make_tuple("00000000000001000000000000000000", "000000000000000000000000000000000000000000000000", "03BF43C9083E4D9919D12FE5C0315E67"),
    std::make_tuple("00000000000000800000000000000000", "000000000000000000000000000000000000000000000000", "B27063442470BE07DCC2256EC71A4F1A"),
    std::make_tuple("00000000000000400000000000000000", "000000000000000000000000000000000000000000000000", "222CC5A29084A4BDB05D4C2FD95648DF"),
    std::make_tuple("00000000000000200000000000000000", "000000000000000000000000000000000000000000000000", "E08686BFAA936E1890AEEC834E3B474A"),
    std::make_tuple("00000000000000100000000000000000", "000000000000000000000000000000000000000000000000", "10DC4FFCAC5F5A1FB668277E8E75BEAB"),
    std::make_tuple("00000000000000080000000000000000", "000000000000000000000000000000000000000000000000", "03A9199978F9D652A4C528FF86C39CE9"),
    std::make_tuple("00000000000000040000000000000000", "000000000000000000000000000000000000000000000000", "DDF718A1BEB37CC1B0905520DB7C1611"),
    std::make_tuple("00000000000000020000000000000000", "000000000000000000000000000000000000000000000000", "2072191C277EE40FD557FF5F67A2A546"),
    std::make_tuple("00000000000000010000000000000000", "000000000000000000000000000000000000000000000000", "96B3608C06112F619B156105EB082BBE"),
    std::make_tuple("00000000000000008000000000000000", "000000000000000000000000000000000000000000000000", "B5D919DFD9828C4FF4427E72ABFC77B2"),
    std::make_tuple("00000000000000004000000000000000", "000000000000000000000000000000000000000000000000", "9570E7A96D4674C800AF8DCD01DEFF64"),
    std::make_tuple("00000000000000002000000000000000", "000000000000000000000000000000000000000000000000", "59723DB66EDB29A9C81175668903777F"),
    std::make_tuple("00000000000000001000000000000000", "000000000000000000000000000000000000000000000000", "1779BDFAC6DB722BCAF4D3A8D9D2E725"),
    std::make_tuple("00000000000000000800000000000000", "000000000000000000000000000000000000000000000000", "5107B50A150998C6EA01C14697FC0E53"),
    std::make_tuple("00000000000000000400000000000000", "000000000000000000000000000000000000000000000000", "36A6CAA08BD5D2B332E9323F7C2E76CA"),
    std::make_tuple("00000000000000000200000000000000", "000000000000000000000000000000000000000000000000", "D1CF37451667EDB8D2E9934D39A27A92"),
    std::make_tuple("00000000000000000100000000000000", "000000000000000000000000000000000000000000000000", "4E96227B0A018755FBE8AD5BF0E421B0"),
    std::make_tuple("00000000000000000080000000000000", "000000000000000000000000000000000000000000000000", "3221B3D3A24745B483BBF99509B330A0"),
    std::make_tuple("00000000000000000040000000000000", "000000000000000000000000000000000000000000000000", "98A4AB39B84D21D36A5DDC2660BD68C5"),
    std::make_tuple("00000000000000000020000000000000", "000000000000000000000000000000000000000000000000", "E5C351E1783465EDBA5CE0592BC77E8E"),
    std::make_tuple("00000000000000000010000000000000", "000000000000000000000000000000000000000000000000", "35489488EE33D0344C1BDB6263D28286"),
    std::make_tuple("00000000000000000008000000000000", "000000000000000000000000000000000000000000000000", "97EA899F53C60536DAFEB18123FD6C5B"),
    std::make_tuple("00000000000000000004000000000000", "000000000000000000000000000000000000000000000000", "8511B11C7D2D8FBF63702A7E3AACA08A"),
    std::make_tuple("00000000000000000002000000000000", "000000000000000000000000000000000000000000000000", "FE0C90596E4F47FD8A9927D83F4DCA52"),
    std::make_tuple("00000000000000000001000000000000", "000000000000000000000000000000000000000000000000", "186FE000683CC19F621BC6C2DA300B71"),
    std::make_tuple("00000000000000000000800000000000", "000000000000000000000000000000000000000000000000", "8291F94EDF578E8A70CD0CF8F3FB3558"),
    std::make_tuple("00000000000000000000400000000000", "000000000000000000000000000000000000000000000000", "2891C81846949C917E757EBAE20D34EE"),
    std::make_tuple("00000000000000000000200000000000", "000000000000000000000000000000000000000000000000", "762D85A32DAF0C9F3CFB3388E808FEC2"),
    std::make_tuple("00000000000000000000100000000000", "000000000000000000000000000000000000000000000000", "CC6807D209B728C559C32336FD8FB71D"),
    std::make_tuple("00000000000000000000080000000000", "000000000000000000000000000000000000000000000000", "FCD07057EF4820154075A0DDCBFC0BBD"),
    std::make_tuple("00000000000000000000040000000000", "000000000000000000000000000000000000000000000000", "FDBFE2C3FFC82792D338388A1FC6D22E"),
    std::make_tuple("00000000000000000000020000000000", "000000000000000000000000000000000000000000000000", "04D5F7CD68FC2352BDDBC82CFE35DA80"),
    std::make_tuple("00000000000000000000010000000000", "000000000000000000000000000000000000000000000000", "B1784A7BF395FB525471EE3DC8972FED"),
    std::make_tuple("00000000000000000000008000000000", "000000000000000000000000000000000000000000000000", "CB5D8A62D16220123EF0005876E35B19"),
    std::make_tuple("00000000000000000000004000000000", "000000000000000000000000000000000000000000000000", "311292EDE1F30E9F22F1EEF8FD19BD80"),
    std::make_tuple("00000000000000000000002000000000", "000000000000000000000000000000000000000000000000", "382BC583EC9B6E16E3DF2188CF0BF1E8"),
    std::make_tuple("00000000000000000000001000000000", "000000000000000000000000000000000000000000000000", "632C9AD674BD1B8A15827A789BD133A7"),
    std::make_tuple("00000000000000000000000800000000", "000000000000000000000000000000000000000000000000", "0EE175DF45B889CED6974E9C2B8F8A78"),
    std::make_tuple("00000000000000000000000400000000", "000000000000000000000000000000000000000000000000", "6131A1A18F00CFDA5B4AF4FBE5487445"),
    std::make_tuple("00000000000000000000000200000000", "000000000000000000000000000000000000000000000000", "0C8746747460A540E2304B55C12EA672"),
    std::make_tuple("00000000000000000000000100000000", "000000000000000000000000000000000000000000000000", "DD6D4D2AA3EB702C597E4E2DE59BF4C9"),
    std::make_tuple("00000000000000000000000080000000", "000000000000000000000000000000000000000000000000", "774EDF219459A4744AA1CCDE7D969A60"),
    std::make_tuple("00000000000000000000000040000000", "000000000000000000000000000000000000000000000000", "1D7B340C4CE68AC97369FFF0FF9980C8"),
    std::make_tuple("00000000000000000000000020000000", "000000000000000000000000000000000000000000000000", "D18104617258AB02AAE02ECCF552A891"),
    std::make_tuple("00000000000000000000000010000000", "000000000000000000000000000000000000000000000000", "8DC66F1D7648EB62F1DCBEB3CD237985"),
    std::make_tuple("00000000000000000000000008000000", "000000000000000000000000000000000000000000000000", "ABF090054ABE052ECE0B07BE6B6CC6DB"),
    std::make_tuple("00000000000000000000000004000000", "000000000000000000000000000000000000000000000000", "89239AAFE9BA86E5EC794397E0180111"),
    std::make_tuple("00000000000000000000000002000000", "000000000000000000000000000000000000000000000000", "6E1CDC049333211B4D7533E21504D200"),
    std::make_tuple("00000000000000000000000001000000", "000000000000000000000000000000000000000000000000", "EFE662AF24D9997FAE45CAD4F92F3091"),
    std::make_tuple("00000000000000000000000000800000", "000000000000000000000000000000000000000000000000", "16F53F3A6CC3B4F86DDA1B8792244901"),
    std::make_tuple("00000000000000000000000000400000", "000000000000000000000000000000000000000000000000", "047CBACDC5EA84771A61FE1204813D46"),
    std::make_tuple("00000000000000000000000000200000", "000000000000000000000000000000000000000000000000", "B442FF3318822EA7F60E2A8A082A043A"),
    std::make_tuple("00000000000000000000000000100000", "000000000000000000000000000000000000000000000000", "971D07AEEDBCA5B7BDCD033F708C97DB"),
    std::make_tuple("00000000000000000000000000080000", "000000000000000000000000000000000000000000000000", "D307263273E250C0B9E08FF23003B0D1"),
    std::make_tuple("00000000000000000000000000040000", "000000000000000000000000000000000000000000000000", "75F7005CA9C6EE5A1F9A4897FA67C661"),
    std::make_tuple("00000000000000000000000000020000", "000000000000000000000000000000000000000000000000", "9B421C68873D49F07E3B9025AD609787"),
    std::make_tuple("00000000000000000000000000010000", "000000000000000000000000000000000000000000000000", "5B182593B47DC674D8B1942CB97224B2"),
    std::make_tuple("00000000000000000000000000008000", "000000000000000000000000000000000000000000000000", "A896871A3157CCD1F5A788E253A6B0FD"),
    std::make_tuple("00000000000000000000000000004000", "000000000000000000000000000000000000000000000000", "789A3D2B2A70181EFCCE5529F200DC44"),
    std::make_tuple("00000000000000000000000000002000", "000000000000000000000000000000000000000000000000", "7F9462D23DB6E99AD0A54EA84DBD94E2"),
    std::make_tuple("00000000000000000000000000001000", "000000000000000000000000000000000000000000000000", "23EAFE1F7CCE96B6BFE2484E1DFC4AB9"),
    std::make_tuple("00000000000000000000000000000800", "000000000000000000000000000000000000000000000000", "A76C323805F9C252C8B86C83294B9987"),
    std::make_tuple("00000000000000000000000000000400", "000000000000000000000000000000000000000000000000", "D8CA1075B7A3F2CF2DAC0980B1B66CC1"),
    std::make_tuple("00000000000000000000000000000200", "000000000000000000000000000000000000000000000000", "8206D89F2A07BA6403647FB85A2F4D7D"),
    std::make_tuple("00000000000000000000000000000100", "000000000000000000000000000000000000000000000000", "3DE7573CD46D85488364472B038869F9"),
    std::make_tuple("00000000000000000000000000000080", "000000000000000000000000000000000000000000000000", "31C62401D6E9E4995C0913747BFE7C7E"),
    std::make_tuple("00000000000000000000000000000040", "000000000000000000000000000000000000000000000000", "C464728025916B4E8D56E4A9F98C1A25"),
    std::make_tuple("00000000000000000000000000000020", "000000000000000000000000000000000000000000000000", "0D4643EE09ABD6D6062187789AE9A77D"),
    std::make_tuple("00000000000000000000000000000010", "000000000000000000000000000000000000000000000000", "0C06EAC3043ABE6554C2DA42F21E7B05"),
    std::make_tuple("00000000000000000000000000000008", "000000000000000000000000000000000000000000000000", "E26C6B2CBE2130729A5BF96E7CD29912"),
    std::make_tuple("00000000000000000000000000000004", "000000000000000000000000000000000000000000000000", "4DE2B8FFF3588A5D4E62CADB720E5BCC"),
    std::make_tuple("00000000000000000000000000000002", "000000000000000000000000000000000000000000000000", "B96DD46C6A286BFF721693A98491F529"),
    std::make_tuple("00000000000000000000000000000001", "000000000000000000000000000000000000000000000000", "64F1DBD3C79EE69AC9E0ED5F554F4AB6"),
};

static const std::vector <PlainKeyCipher> TWOFISH256_VT_TEST_VECTORS = {
    std::make_tuple("80000000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "23A385F617F313DAC05BCB7EABD61807"),
    std::make_tuple("40000000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "35BE2B4738602A1DA3DE5C9E7E871923"),
    std::make_tuple("20000000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "03E8BB7A568E95BA792DCE77D5523C2B"),
    std::make_tuple("10000000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "D3ACBE92C482D2E806FD837E41DBB288"),
    std::make_tuple("08000000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "DC3B1C37C69B4059EAADF03FCD016EB4"),
    std::make_tuple("04000000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "3C9D9BD904E0E6916089A4BAC35E5368"),
    std::make_tuple("02000000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "C47DA045701B93A388E76FCBCD349F22"),
    std::make_tuple("01000000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "52F264B196925A345CA5ADC57C234B96"),
    std::make_tuple("00800000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "C923754C5AD2E3F842D01705A716BE8A"),
    std::make_tuple("00400000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "630075C7563CDBACDFEADB781CC9467C"),
    std::make_tuple("00200000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "CB4F69BCC76A2499C6FCFBBE4CEB8CFB"),
    std::make_tuple("00100000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "0442F15EA2BD6D9EB773F9B99804DF56"),
    std::make_tuple("00080000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "9CE6896C15C3CC00E2AA1944D7117B98"),
    std::make_tuple("00040000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "E934066740023616B349F45582442647"),
    std::make_tuple("00020000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "D08EF37A59D94ED645B1D1B160E3E816"),
    std::make_tuple("00010000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "E91891CAC17FE493C7167C6CB59DCB69"),
    std::make_tuple("00008000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "B27A42D2C870DC96BC6C551218C44CC4"),
    std::make_tuple("00004000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "CE8D23E64E6BC18208CEEB282E387326"),
    std::make_tuple("00002000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "36F76678A27F2F5A436073D5ADA4AB3B"),
    std::make_tuple("00001000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "D0EAA36F9A648905B277F0BD24B1A339"),
    std::make_tuple("00000800000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "82BE0E3673E7872BF79BBE2A45F4BD93"),
    std::make_tuple("00000400000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "013CAE3986083F8D321273D68CA9784D"),
    std::make_tuple("00000200000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "0A7FCF71DAC023718153FFB761BAEBEF"),
    std::make_tuple("00000100000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "C784C5EA8CE3897F153336047D2FE3E0"),
    std::make_tuple("00000080000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "FE776B4476A4F029E5EA9293E3C1BCA1"),
    std::make_tuple("00000040000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "302A5F9A73B07D83699EB9DE1D86DB7B"),
    std::make_tuple("00000020000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "E6C43F6F62F1EEE0BDB3484F325053B6"),
    std::make_tuple("00000010000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "C5579556F710EACFAD9319AA85B89F6F"),
    std::make_tuple("00000008000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "96C88E46C1C2BA0B583F30FE0248A794"),
    std::make_tuple("00000004000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "287D27FB1CA40821294B1AFC868F3A6F"),
    std::make_tuple("00000002000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "F4602DF76A24010DE5A1353043CF178E"),
    std::make_tuple("00000001000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "47F98AA9DF5E7314D3D5571EF6B95284"),
    std::make_tuple("00000000800000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "77CBF7DCA60F913FD9C82AC65212EBB2"),
    std::make_tuple("00000000400000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "BEB1C2BC4B5C363FCF5A0466883079A9"),
    std::make_tuple("00000000200000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "2AB8B9254ADBDCE17F0A719815DEFF7E"),
    std::make_tuple("00000000100000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "75A30CEAA03AF66E44A85DC66DEB20C9"),
    std::make_tuple("00000000080000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "C37E64CE86B615573C4C42BBE71DACD8"),
    std::make_tuple("00000000040000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "284CB50259A96CCED1C1C64D8B603024"),
    std::make_tuple("00000000020000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "BE346B07869425CBCA54F93D7A1F4035"),
    std::make_tuple("00000000010000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "60EE2023B03033A972E28E4A21C7005F"),
    std::make_tuple("00000000008000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "4E1FD4BC99AEA3BCC6B9066EC6329D43"),
    std::make_tuple("00000000004000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "079BDF2DAD2CE6FB7D21BBD76A7ABF48"),
    std::make_tuple("00000000002000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "6B933D9914169C2A704E52EC6D7E4E1D"),
    std::make_tuple("00000000001000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "FD854A50372E5D301367D8E98CC88028"),
    std::make_tuple("00000000000800000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "8CE94A2C43B01825CE5F271135481BB2"),
    std::make_tuple("00000000000400000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "73A43C713898BA7D7D2B6BC8673A7AAA"),
    std::make_tuple("00000000000200000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "13873CFBDED482C0B7B435025A9F1CF4"),
    std::make_tuple("00000000000100000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "3F168CD782896F22C56A92A09EA7E162"),
    std::make_tuple("00000000000080000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "BCDF1C8686E68810FE90B16ECAB46147"),
    std::make_tuple("00000000000040000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "95C18EBA59E3CB6359DE7CCE9E8751F9"),
    std::make_tuple("00000000000020000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "03CFEA7D36D56552CDEF806215EA7596"),
    std::make_tuple("00000000000010000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "CC189A2E8F529EB139DCA2033109F40B"),
    std::make_tuple("00000000000008000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "453912532144CED54B7D4049BC8B8CF2"),
    std::make_tuple("00000000000004000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "C6DBBF405A056A80CA788267538FE8F0"),
    std::make_tuple("00000000000002000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "2EB5E272874CE244A328BA6410480B4C"),
    std::make_tuple("00000000000001000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "263BFB611CBD9D9C7FF6B1A9E3276696"),
    std::make_tuple("00000000000000800000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "9CC3EB61A9907F5F22251239A9EB38ED"),
    std::make_tuple("00000000000000400000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "726A3EE922EDFE52206C2191E1F045F4"),
    std::make_tuple("00000000000000200000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "1344C1E04A9D97668A240D82396AC021"),
    std::make_tuple("00000000000000100000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "9067BAA44C264E9A2AEC292390A6F492"),
    std::make_tuple("00000000000000080000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "1176621BD24D35670B08D6A065806B02"),
    std::make_tuple("00000000000000040000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "DF0D31D14D81FD086E8E32479919FDBC"),
    std::make_tuple("00000000000000020000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "44BAD80B0BA01E971ADC4139D6DE0C36"),
    std::make_tuple("00000000000000010000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "76C59131EFFAE14058D99E22698B602D"),
    std::make_tuple("00000000000000008000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "7604D9F3110F8440917ABCEA49710ADA"),
    std::make_tuple("00000000000000004000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "4584FCBB487171176C4318082EFEFDF7"),
    std::make_tuple("00000000000000002000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "019D3B42FA31A9F9175759E6C3193A07"),
    std::make_tuple("00000000000000001000000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "C324FF5F71A974F13F5D83226441E3BD"),
    std::make_tuple("00000000000000000800000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "D9DF41408DFF80DE7C9571706B39038F"),
    std::make_tuple("00000000000000000400000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "FBB99A524AC23D74047D814EC0AEDBE2"),
    std::make_tuple("00000000000000000200000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "877C855E25345F6C7DB4237ECF64C874"),
    std::make_tuple("00000000000000000100000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "206500F822C1305F9D61F49FC57AFBF2"),
    std::make_tuple("00000000000000000080000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "C7538D97A78844C3C00740865E26755B"),
    std::make_tuple("00000000000000000040000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "FADBC4A6E4564041ADA094C603CABAA4"),
    std::make_tuple("00000000000000000020000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "04C482E0707DE6DC1917727D00C4FA6B"),
    std::make_tuple("00000000000000000010000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "EE36B8996AFF98BEA6E2115B9D173321"),
    std::make_tuple("00000000000000000008000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "DBA4A5F38B104985D796ECDDD812B605"),
    std::make_tuple("00000000000000000004000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "1DC0F910CD5AF1E5734169459E170192"),
    std::make_tuple("00000000000000000002000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "C3B7D6914052503D377B01DB4E3A630D"),
    std::make_tuple("00000000000000000001000000000000", "0000000000000000000000000000000000000000000000000000000000000000", "54D807506602ECF7D6B8C4D923317738"),
    std::make_tuple("00000000000000000000800000000000", "0000000000000000000000000000000000000000000000000000000000000000", "ACE4949143D4D1441AA854331E7F511B"),
    std::make_tuple("00000000000000000000400000000000", "0000000000000000000000000000000000000000000000000000000000000000", "F7BA140AED4756B26789498A17EBF62D"),
    std::make_tuple("00000000000000000000200000000000", "0000000000000000000000000000000000000000000000000000000000000000", "F23E08B81ACB75FE2326A94ECC5968AC"),
    std::make_tuple("00000000000000000000100000000000", "0000000000000000000000000000000000000000000000000000000000000000", "4CF26F088604368B17DDC09FF9D0146D"),
    std::make_tuple("00000000000000000000080000000000", "0000000000000000000000000000000000000000000000000000000000000000", "E93AEB7AD76A6AD0AF4092F363421F1B"),
    std::make_tuple("00000000000000000000040000000000", "0000000000000000000000000000000000000000000000000000000000000000", "3D234C0F78ECBEFCCDCE1EA6EC98C145"),
    std::make_tuple("00000000000000000000020000000000", "0000000000000000000000000000000000000000000000000000000000000000", "BA300B0234F0C96125D33123CDD7D6A4"),
    std::make_tuple("00000000000000000000010000000000", "0000000000000000000000000000000000000000000000000000000000000000", "1CF1A160FAD7E744F08BA1454A999211"),
    std::make_tuple("00000000000000000000008000000000", "0000000000000000000000000000000000000000000000000000000000000000", "59A9E8C14ACBCEC235529425CF86998E"),
    std::make_tuple("00000000000000000000004000000000", "0000000000000000000000000000000000000000000000000000000000000000", "22D29CFEF3A6DC0EC67A9EA8523D6158"),
    std::make_tuple("00000000000000000000002000000000", "0000000000000000000000000000000000000000000000000000000000000000", "513971F979FC906FADD982D7F08E4F05"),
    std::make_tuple("00000000000000000000001000000000", "0000000000000000000000000000000000000000000000000000000000000000", "6A95C07D7FACF2CD36DF362116A2DD5F"),
    std::make_tuple("00000000000000000000000800000000", "0000000000000000000000000000000000000000000000000000000000000000", "CD62AD57393A38607436FAF0985C2D50"),
    std::make_tuple("00000000000000000000000400000000", "0000000000000000000000000000000000000000000000000000000000000000", "5209ADE137B93BA0963528E3E1A40F2A"),
    std::make_tuple("00000000000000000000000200000000", "0000000000000000000000000000000000000000000000000000000000000000", "545BDE9D1C11239ED70D93060F24E397"),
    std::make_tuple("00000000000000000000000100000000", "0000000000000000000000000000000000000000000000000000000000000000", "720622F5194578B3C24B5DDDC7E30327"),
    std::make_tuple("00000000000000000000000080000000", "0000000000000000000000000000000000000000000000000000000000000000", "9E12338BF484106249754EAA6C441192"),
    std::make_tuple("00000000000000000000000040000000", "0000000000000000000000000000000000000000000000000000000000000000", "F13303DC759CA65097EC87F8D854163C"),
    std::make_tuple("00000000000000000000000020000000", "0000000000000000000000000000000000000000000000000000000000000000", "4A2A6EB6845723C1C790D693B596CDE3"),
    std::make_tuple("00000000000000000000000010000000", "0000000000000000000000000000000000000000000000000000000000000000", "EF3D7C67417CA1FEEF03EF71441BDDFE"),
    std::make_tuple("00000000000000000000000008000000", "0000000000000000000000000000000000000000000000000000000000000000", "214FB38A7511A87CF160F59CCA2B8E33"),
    std::make_tuple("00000000000000000000000004000000", "0000000000000000000000000000000000000000000000000000000000000000", "DCFFDB5E44574D0D593A70ADA4C79474"),
    std::make_tuple("00000000000000000000000002000000", "0000000000000000000000000000000000000000000000000000000000000000", "AC9D55D4A4FBB80C9B79C9077BA381B1"),
    std::make_tuple("00000000000000000000000001000000", "0000000000000000000000000000000000000000000000000000000000000000", "05C6D61B75312924E0BCEDCB4B8D55DD"),
    std::make_tuple("00000000000000000000000000800000", "0000000000000000000000000000000000000000000000000000000000000000", "E650CB445AF48A77E8DB6E2EFBCE6FA7"),
    std::make_tuple("00000000000000000000000000400000", "0000000000000000000000000000000000000000000000000000000000000000", "4C9902E89253D7A172BABFA87DB94816"),
    std::make_tuple("00000000000000000000000000200000", "0000000000000000000000000000000000000000000000000000000000000000", "5AF4F5E8491EE7F87EB809D82AEC12DB"),
    std::make_tuple("00000000000000000000000000100000", "0000000000000000000000000000000000000000000000000000000000000000", "1C11730D62BCA6F847B1457B5287BD12"),
    std::make_tuple("00000000000000000000000000080000", "0000000000000000000000000000000000000000000000000000000000000000", "BEF65A32FF7383CFDB5A90C2F3B93837"),
    std::make_tuple("00000000000000000000000000040000", "0000000000000000000000000000000000000000000000000000000000000000", "2F3AA68FFE3B99DC92621782F3F9ED67"),
    std::make_tuple("00000000000000000000000000020000", "0000000000000000000000000000000000000000000000000000000000000000", "18BD598BFA2C77E21DBD594EE0E5CDCB"),
    std::make_tuple("00000000000000000000000000010000", "0000000000000000000000000000000000000000000000000000000000000000", "248CF533016A6AB1F84F85B2C5CD41A7"),
    std::make_tuple("00000000000000000000000000008000", "0000000000000000000000000000000000000000000000000000000000000000", "A3B12F578353514CCC500ADD6C495A6C"),
    std::make_tuple("00000000000000000000000000004000", "0000000000000000000000000000000000000000000000000000000000000000", "EE2DC099B37D200B4D3930A6DE07208E"),
    std::make_tuple("00000000000000000000000000002000", "0000000000000000000000000000000000000000000000000000000000000000", "412C9F198D58A0F01F66DF07CF211636"),
    std::make_tuple("00000000000000000000000000001000", "0000000000000000000000000000000000000000000000000000000000000000", "5B3532BA46716B02E761339DBAFBAAB0"),
    std::make_tuple("00000000000000000000000000000800", "0000000000000000000000000000000000000000000000000000000000000000", "0148187CA72EC46B522E4FE7E1261522"),
    std::make_tuple("00000000000000000000000000000400", "0000000000000000000000000000000000000000000000000000000000000000", "84C529CC4E23683AB90A24A6690662ED"),
    std::make_tuple("00000000000000000000000000000200", "0000000000000000000000000000000000000000000000000000000000000000", "0D1EF0481593A3D95F0361C776D9A4D2"),
    std::make_tuple("00000000000000000000000000000100", "0000000000000000000000000000000000000000000000000000000000000000", "D622171C73726DB6620FFDA6540D510E"),
    std::make_tuple("00000000000000000000000000000080", "0000000000000000000000000000000000000000000000000000000000000000", "F218D92AED363C6829F7FA3BA346E0FB"),
    std::make_tuple("00000000000000000000000000000040", "0000000000000000000000000000000000000000000000000000000000000000", "40CD83A5F0BFD0E1D7FE14299CECFB7C"),
    std::make_tuple("00000000000000000000000000000020", "0000000000000000000000000000000000000000000000000000000000000000", "512F022157AEF0015E93F3737911A35E"),
    std::make_tuple("00000000000000000000000000000010", "0000000000000000000000000000000000000000000000000000000000000000", "C7A5A88356152E95F36739AB5EF9F63F"),
    std::make_tuple("00000000000000000000000000000008", "0000000000000000000000000000000000000000000000000000000000000000", "8FD0F15E2504A8F4FD751CA7799FFB1D"),
    std::make_tuple("00000000000000000000000000000004", "0000000000000000000000000000000000000000000000000000000000000000", "0137C87257A8CBD18C218A867B3AB5F8"),
    std::make_tuple("00000000000000000000000000000002", "0000000000000000000000000000000000000000000000000000000000000000", "3DB0F1674F187DF1CB036DB33A05A0D7"),
    std::make_tuple("00000000000000000000000000000001", "0000000000000000000000000000000000000000000000000000000000000000", "23D1247EFF4CA8CBB378DF118369821E"),
};

#endif // __TWOFISHECB_VT__
